/**
 * Created by yuzhou on 16/9/23.
 */

define(['vue', 'plugin/util'], function(Vue, Util){

    return {
        getAll: function(cb, errorCb) {
            Vue.http.get('/api/good').then(function(res){
                if(res.data.ok){
                    cb(res.data.data, res.data.ts)
                } else {
                    if(errorCb) errorCb(res.data.error)
                    else Util.error(res.data.error)
                }
            })
        },
        saveGood: function(good, cb, errorCb){
            Vue.http.post('/api/good', good).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    errorCb(res.data.error)
                }
            })
        },
        getTypes: function(cb, errorCb){
            Vue.http.get('/api/good/types').then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        },
        getBrandsByType: function(type, cb, errorCb) {
            Vue.http.get('/api/good/brands/' + type).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        },
        getExtGoodsByBrand: function(brandId, cb, errorCb){
            Vue.http.get('/api/good/goods/' + brandId).then(function(res){
                if(res.data.ok){
                    cb(res.data.data)
                } else {
                    if(errorCb) {
                        errorCb(res.data.error)
                    }
                }
            })
        }
    }
})